Increasingly, developers are being given the ability to develop their own custom software through cloud computing systems. A developer can write code, compile and execute the code in a debugging mode. The debugging mode allows the developer a window into how the code is executing. When code is executed in a debugging mode, the developer can typically: view variable values during execution of the code, set breakpoints at which execution of the code will halt until the developer triggers continued execution, and/or step through execution of the code on a line-by-line basis.
Consider a case where a developer interacting with a client computer that is external to a cloud system desires to debug a program that is executing on a machine inside of the cloud system (also referred to herein as “web based debugging”): Traditional debuggers require that the debugger provide the machine's TCP/IP address/port in order for the client computer that is outside of the cloud's firewall to connect and communicate with the machine executing the program inside the cloud system. Therefore, the cloud administrator has to publish the machine's TCP/IP address/port and/or make modifications to the firewall. These approaches are not secure and do not scale for on demand use of debugging services.